package com.baosight.risk.api.riri;

import com.baosight.risk.base.service.BaseService;
import com.baosight.risk.service.fltd.entity.FltdProcess;
import com.baosight.risk.service.riri.entity.RiriImpRisk;
import com.baosight.risk.service.riri.entity.RiriRisk;
import com.baosight.risk.service.riri.entity.RiriYyRisk;
import com.baosight.risk.service.riri.vo.RiRiRiskDetailParamVO;
import com.baosight.risk.service.riri.vo.RiRiRiskDetailVO;
import com.baosight.risk.service.riri.vo.RiriRiskVO;
import com.baosight.risk.service.riri.vo.RiskTopThreeVO;
import com.baosight.risk.service.xtzy.entity.XtzyCompany;
import com.baosight.risk.service.xtzy.entity.XtzyUser;

import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 类 名: IRiriRiskService
 * 作 者: 黎秋荣
 * 创 建：2019年05月08日
 * 版 本：v2.2.0
 * 历 史: (版本) 作者 时间 注释
 */
public interface IRiriRiskService extends BaseService<RiriRisk> {

    List<RiriRisk> selectRiriRisk(RiriRiskVO ririRisk, XtzyUser user);

    Integer getLastQuarter();

    Integer saveRisk(List<RiriRisk> ririRisk) throws Exception;

    Integer saveYyRisk(List<RiriYyRisk> ririYyRiskList) throws Exception;

    Integer saveImpRisk(List<RiriImpRisk> ririImpRiskList) throws Exception;

    Integer submitRiriRisk(List<RiriRisk> ririRisk);

    Integer updateRisk(RiriRisk ririRisk);

    Integer addHistory(List<String> ids);

    List<RiriRisk> getRiriRiskByIds(List<String> ids);

    Integer deleteById(List<String> ids, String status, String statusStatus) throws Exception;

    Integer deleteYyById(List<String> ids, String deleteFlag, Date deleteTime, String deleteBy) throws Exception;

    Integer deleteImpById(List<String> ids, String deleteFlag, Date deleteTime, String deleteBy) throws Exception;

    List<RiriRisk> selectTopThree(RiskTopThreeVO riskTopThree);

    void saveTimingTask(Map mapParam, List<XtzyCompany> companyList, String jobId) throws Exception;

    void updateRowOrder(RiriRiskVO ririRisk,XtzyUser user);

    List<RiriRisk> getTopThree(RiriRisk ririRisk);

    void doCarryForward(String acctYear, String quarterCurrent) throws Exception;

    List<RiRiRiskDetailVO> selectRiRiRiskDetails(RiRiRiskDetailParamVO vo);

    Integer updateTop3(RiriRisk ririRisk) throws Exception;

    List<RiriRisk> selectNeedRiriRisk(RiriRiskVO ririRisk, XtzyUser user);

    List<RiriRisk> queryRisk(RiriRiskVO ririRisk, XtzyUser user);

    List<RiriYyRisk> queryYyRisk(RiriYyRisk ririYyRisk, XtzyUser user);

    RiriYyRisk queryYyById(String id);

    RiriImpRisk queryImpById(String id);

    List<RiriImpRisk> queryImpRisk(RiriImpRisk ririImpRisk, XtzyUser user);

    List<FltdProcess> queryProcessExt1(FltdProcess process);
    //导出风险识别Excel
    List<RiriRisk> exportExcelRiriRisk(RiriRiskVO ririRisk, XtzyUser user);

    List<RiriRisk> queryRiriRiskData(RiriRiskVO ririRiskVO);

    Integer importantRiskUpdate(RiriRisk ririRisk);

    List<RiriRisk> queryImportantRiskData(RiriRiskVO ririRisk);

    Integer importRisk(List<RiriRisk> ririRiskList) throws Exception;

    List<RiriRisk> selectPredictRiriRisk(RiriRiskVO ririRisk, XtzyUser user);

    List<RiriRisk> selectPredict(RiriRiskVO ririRisk, XtzyUser user);

    Integer importSaveRisk(List<RiriRisk> ririRiskList)throws Exception;

    Integer saveProcessExt1(FltdProcess process);

}
